The present disclosure relates to data forwarding, and more particularly to a multilayered distributed router architecture.
A router is a specialized network device that is configured to forward data (e.g., data packets) between networks to facilitate the delivery of the data from its source to its intended destination. A router is configured to determine optimal routes or data paths through an internetwork topology and transport data packets using these optimal paths. A router also provides various other services such as firewall, Quality of Service (QoS), and the like.
A conventional router typically comprises a control plane subsystem and one or more data planes that are all housed within a single box or chassis. A data plane, which may be implemented as a linecard in conventional systems, is configured to receive and forward data packets via one or more ports of the data plane. The forwarding is performed based upon forwarding information stored by the data plane. The forwarding information that a data plane uses to forward the data packets is typically programmed by the router's control plane subsystem, which may comprise one or more management cards. The control plane subsystem is configured to control the networking-related functions performed by the router, including, for example, maintaining routing information (e.g., routing information tables), programming the data forwarding planes forwarding information based upon the routing information, handling various networking control protocols, handling the processing of packets (e.g., control and/or data packets) that are terminated at a control plane, processing Access Control Lists (ACLs), Quality of Service (QoS), management functions, and the like.
As previously indicated, in a conventional router, the control plane subsystem of the router and the data planes that are controlled by the control plane subsystem are all physically co-located within the same physical network device box or chassis of the router. As a result, there is a static relationship between the control plane subsystem and the one or more data plane subsystems of the router. This makes programming of such routers in a huge network (e.g., the Internet), which may comprise tens of thousands of such routers, complicated and inflexible. When changes (e.g., addition or reconfigurations of data paths, addition or removal of network devices) have to be made to such networks, each individual router box affected by the change has to be individually programmed or re-programmed. This per router-centric management requirement makes management of such networks very complex and time consuming. As a result, networks using conventional routers lack the flexibility and dynamic configurability desired by today's (and tomorrow's) network applications such as cloud computing, mobile computing, real-time and on-demand video traffic, and the like.